package cn.tedu.review.cn.tedu.innerclass;

import java.security.spec.RSAOtherPrimeInfo;

/*本类用于复写内部类入门案例*/
public class TestInner {
    public static void main(String[] args) {
        //在main()中创建内部类对象,使用内部类资源
        Outer.Inner oi = new Outer().new Inner();
        oi.delete();
        System.out.println(oi.sum);

    }
}
//创建外部类
class Outer{
    //创建外部类的成员变量
    String name;
    private int age;
    //创建外部类的普通方法
    public void find(){
        System.out.println("Outer的find()");
        /*外部类不可以直接使用内部类的资源,如果想要使用,必须先创建内部类对象
        * 通过内部类对象才能使用*/
//        System.out.println(sum);不能直接使用,会报错
//        delete();//不能直接使用
        Inner i=new Inner();
        System.out.println(i.sum);
        i.delete();
    }
    /*根据内部类的位置的不同,分为
    * 成员外部类:类里方法外
    * 局部内部类:方法里*/
    //创建成员内部类--可以看作是外部类的一个特殊成员
    class Inner{
        //定义内部类的成员变量
        int sum =10;
        //定义内部类的成员方法
        public void delete(){

            System.out.println("Inner的delete()");
            /*内部类可以直接使用外部类的资源,包括私有资源*/
            System.out.println(name);
            System.out.println(age);
        }
    }
}